#
# @lc app=leetcode.cn id=1009 lang=python
#
# [1009] 十进制整数的反码
#

# @lc code=start
class Solution(object):
    def bitwiseComplement(self, n):
        """
        :type n: int
        :rtype: int
        """
        lst = []
        while n:
            lst.append(n % 2)
            n //= 2
        # 如果 n 为 0，添加一个 '0'
        if not lst:
            lst.append(0)
    
        # 对二进制位进行按位取反
        inverted_lst = [1 if bit == 0 else 0 for bit in reversed(lst)]

        # 将取反后的二进制位转换为字符串
        inverted_str = ''.join(map(str, inverted_lst))
        
        # 将取反后的二进制字符串转换为十进制数
        return int(inverted_str, 2)
# @lc code=end

